{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 174,
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import torch\n",
    "import matplotlib.pyplot as plt\n",
    "import torch.nn as nn"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 175,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 构造数据\n",
    "def make_data(func=np.sin, start=-np.pi/2, end=np.pi/2, number=10000, shuffle=True, train_ratio=0.9):\n",
    "    noise = 0.00001\n",
    "    xx = np.linspace(start=start, stop=end, endpoint=True, num=number)\n",
    "    yy = func(xx) + np.random.normal(loc=0, scale=noise, size=(xx.shape))\n",
    "     \n",
    "    train_num = int(xx.shape[0] * train_ratio)\n",
    "    if shuffle:\n",
    "        shuffle_indexes = np.random.permutation(xx.shape[0])\n",
    "        train_index = shuffle_indexes[:train_num]\n",
    "        test_index = shuffle_indexes[train_num:]\n",
    "    else:\n",
    "        indexes = np.arange(xx.shape[0])\n",
    "        train_index = indexes[:train_num]\n",
    "\n",
    "\n",
    "\n",
    "        test_index = indexes[train_num:]\n",
    "    \n",
    "    train_xx, train_yy = xx[train_index], yy[train_index]\n",
    "    test_xx, test_yy = xx[test_index], yy[test_index]\n",
    "    \n",
    "    return train_xx, train_yy, test_xx, test_yy\n",
    "\n",
    "\n",
    "def visulization(x, y, type='plot'):\n",
    "    if type == 'plot':\n",
    "        plt.plot(x, y)\n",
    "    elif type == 'scatter':\n",
    "        plt.scatter(x, y)\n",
    "    plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 176,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(90000,) (90000,) (10000,) (10000,)\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjgAAAGdCAYAAAAfTAk2AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/OQEPoAAAACXBIWXMAAA9hAAAPYQGoP6dpAAA7v0lEQVR4nO3de1xVdb7/8fcGZaMZoEdkQ1HiJS+lYhqENWkDCeJ09JxOo42TlzE9NdlkWCqexNQSrabxOPkY55JZZ3K6zKlmpgtqqNOvIizUycyYMMzrRtNgKyYgrN8fnfa0R0BA1l577/V6Ph77UXvt71r7s1Ykb7/f71pfh2EYhgAAAEJImNUFAAAAtDcCDgAACDkEHAAAEHIIOAAAIOQQcAAAQMgh4AAAgJBDwAEAACGHgAMAAEJOB6sLsEJDQ4MOHz6siy++WA6Hw+pyAABACxiGoZMnTyohIUFhYc330dgy4Bw+fFiJiYlWlwEAANrgwIEDuvTSS5ttY8uAc/HFF0v65gJFRUVZXA0AAGgJj8ejxMRE7+/x5tgy4Hw7LBUVFUXAAQAgyLRkegmTjAEAQMgh4AAAgJBDwAEAACGHgAMAAEIOAQcAAIQcAg4AAAg5BBwAABByCDgAACDkEHAAAEDIMTXgvP3227r55puVkJAgh8OhV1999bz7bN26VVdffbWcTqf69OmjdevWndNm9erV6tmzpyIjI5Wamqpt27a1f/EAACBomRpwqqurNWTIEK1evbpF7cvLyzV27FjdeOON2rlzp2bPnq077rhDGzZs8LZ54YUXlJOTo0WLFmn79u0aMmSIMjMzdfToUbNOAwAABBmHYRiGX77I4dArr7yi8ePHN9lm3rx5ev311/Xxxx97t02cOFGVlZUqKCiQJKWmpuqaa67Rk08+KUlqaGhQYmKi7rnnHs2fP79FtXg8HkVHR6uqqoq1qAAACBKt+f0dUIttFhUVKSMjw2dbZmamZs+eLUmqra1VSUmJcnNzvZ+HhYUpIyNDRUVFTR63pqZGNTU13vcej6d9CwcAIITVnm3QFQ++2er99i0fa0I1LRNQAcftdisuLs5nW1xcnDwej77++mt99dVXqq+vb7TNp59+2uRx8/PztXjxYlNqBgAg2DU0GOq14A2ry2hXARVwzJKbm6ucnBzve4/Ho8TERAsrAgDAGj3nv251CX4RUAHH5XKpoqLCZ1tFRYWioqLUqVMnhYeHKzw8vNE2LperyeM6nU45nU5TagYAIFBVfV2nIYs3+v17u10Uoe0Lb/L7935XQAWctLQ0vfGGbxfZpk2blJaWJkmKiIjQsGHDVFhY6J2s3NDQoMLCQs2aNcvf5QIAEFDO1NWr/8ICS2v4W95oRXfuaGkNkskB59SpUyorK/O+Ly8v186dO9WtWzdddtllys3N1aFDh/Tss89Kku688049+eSTmjt3rn7yk59o8+bNevHFF/X66//oTsvJydGUKVM0fPhwpaSkaOXKlaqurta0adPMPBUAAAJSIA05WTmp+J+ZGnA+/PBD3Xjjjd73386DmTJlitatW6cjR45o//793s+TkpL0+uuv67777tN///d/69JLL9Xvfvc7ZWZmettMmDBBx44dU15entxut5KTk1VQUHDOxGMAAEJVIIWabwVSuJH8+BycQMJzcAAAwSYQQ823/BVugvY5OAAA4B8COdRIkisqUu8vSLe6jEYRcAAACCCBHmq+tfG+G3RF3MVWl9EkAg4AAAEgWIKNJO1dlq3wMIfVZTSLgAMAgEVmPvuhNn5Scf6GASTQJhM3hYADAICfBVNvzXcFS7iRCDgAAPhNsAYbKbjCjUTAAQDAdMEcbH5+6xDdMuxSq8toNQIOAAAmCeZgI0kfL85UF2dwRoXgrBoAgAAW7MFGksrzs+VwBPadUs0h4AAA0E5CIdhIwTffpjEEHAAALlCoBBspNMKNRMABAKDNQinYjLwiVs/8JMXqMtoNAQcAgFYKpWAjSVvuH6Wk7hdZXUa7IuAAANBCoRZspOBYdqEtCDgAALRAKIabUJlv0xgCDgAAzQjFYCOFdriRCDgAADQqVIONFPrhRiLgAABwjlANN0/+aKh+MDjB6jL8goADAMD/CdVgIwX3sgttYZ8zBQCgCau3lOmxDaVWl2GaYF92oS0IOAAAWwvlXhvJHvNtGkPAAQDYUqgHG8m+4UaSwqwuAAAAfwv1cJMxoIetw41EDw4AwEZCPdhI0tb7R6lniC270BYEHACALdgh3ITqsgttwRAVACCklR09aYtws2/5WMLNd9CDAwAIWXYINpK9JxM3hR4cAEBIItzYGz04AICQYpdg88vbhurmIfZYdqEtCDgAgJBhl3Cz66HRujiyo9VlBDQCDgAg6BmGoaTcN6wuwy/suOxCW/hlDs7q1avVs2dPRUZGKjU1Vdu2bWuy7ahRo+RwOM55jR37jzHGqVOnnvN5VlaWP04FABBges5/3TbhZt/ysYSbFjK9B+eFF15QTk6O1qxZo9TUVK1cuVKZmZkqLS1Vjx49zmn/8ssvq7a21vv++PHjGjJkiG699VafdllZWXr66ae9751Op3knAQAISHYZkpKYTNxapvfgPPHEE5oxY4amTZumgQMHas2aNercubPWrl3baPtu3brJ5XJ5X5s2bVLnzp3PCThOp9OnXdeuXc0+FQBAALFLuBl5RSzhpg1M7cGpra1VSUmJcnNzvdvCwsKUkZGhoqKiFh3jqaee0sSJE3XRRb6Pnd66dat69Oihrl276vvf/74efvhh/cu//Eujx6ipqVFNTY33vcfjacPZAAACgV2CjSQVzhmp3rFdrC4jKJnag/Pll1+qvr5ecXFxPtvj4uLkdrvPu/+2bdv08ccf64477vDZnpWVpWeffVaFhYVasWKF/vrXv2rMmDGqr69v9Dj5+fmKjo72vhITE9t+UgAAy9gp3JQ9MoZwcwEC+i6qp556SoMGDVJKSorP9okTJ3r/fdCgQRo8eLB69+6trVu3Kj09/Zzj5ObmKicnx/ve4/EQcgAgyNgp3DAkdeFM7cHp3r27wsPDVVFR4bO9oqJCLper2X2rq6v1/PPPa/r06ef9nl69eql79+4qKytr9HOn06moqCifFwAgOJR/WU24QauZGnAiIiI0bNgwFRYWerc1NDSosLBQaWlpze770ksvqaamRj/+8Y/P+z0HDx7U8ePHFR8ff8E1AwACR8/5r+vGx7daXYbfEG7aj+l3UeXk5Oi3v/2tnnnmGe3Zs0d33XWXqqurNW3aNEnS5MmTfSYhf+upp57S+PHjz5k4fOrUKT3wwAN6//33tW/fPhUWFmrcuHHq06ePMjMzzT4dAICf2KnX5vFbhxBu2pnpc3AmTJigY8eOKS8vT263W8nJySooKPBOPN6/f7/CwnxzVmlpqd555x1t3LjxnOOFh4fro48+0jPPPKPKykolJCRo9OjRWrp0Kc/CAYAQYadw87e80YruzLIL7c1hGIZhdRH+5vF4FB0draqqKubjAECAsVO4YdmF1mnN7++AvosKAGAfdgo2EvNtzOaXtagAAGgO4QbtjYADALCUncJNcmIM4cZPGKICAFjGTuGmYPb31N/FvE9/IeAAACxhp3Dz2SNj1DGcQRN/4moDAPzqU7fHVuFm3/KxhBsL0IMDAPAbOwUbicnEViJSAgD8gnADf6IHBwBgOjuFm4duHqip1yVZXYbtEXAAAKayU7jZvvAmdbsowuoyIAIOAMBEdgo3LLsQWJiDAwBod2VHT9oq3OxbPpZwE2DowQEAtCs7BRuJycSBih4cAEC7sVO4uSSmE+EmgNGDAwBoF3YKN6/8dISGXtbV6jLQDAIOAOCC2SnclD6cJWeHcKvLwHkQcAAAbWYYhpJy37C6DL9hSCp4MAcHANAmBR+7CTcIWPTgAABazU5DUhLhJhgRcAAArWKncHNvel/dd9MVVpeBNiDgAABazE7hZtuCdPWIirS6DLQRAQcA0CJ2CjefL8tWWBhPJg5mTDIGADSr9myDrcLNvuVjCTchgB4cAECTlr72iZ56p9zqMvyGycShg4ADAGiUnXptJMJNqCHgAADOYadw8z/TU/S9vrFWl4F2RsABAPiwU7jZsyRLnSJYdiEUEXAAAF52Cjfl+dlyOJhMHKq4iwoAoOOnamwVbvYtH0u4CXH04ACAzV23fLMOVX5tdRl+w2RieyDgAICN2anXZuI1iVp+y2Cry4Cf+GWIavXq1erZs6ciIyOVmpqqbdu2Ndl23bp1cjgcPq/ISN9HZRuGoby8PMXHx6tTp07KyMjQZ599ZvZpAEBIsVO4+X9zbyTc2IzpAeeFF15QTk6OFi1apO3bt2vIkCHKzMzU0aNHm9wnKipKR44c8b6++OILn88fffRRrVq1SmvWrFFxcbEuuugiZWZm6syZM2afDgCEBDuFm73LspXYrbPVZcDPTA84TzzxhGbMmKFp06Zp4MCBWrNmjTp37qy1a9c2uY/D4ZDL5fK+4uLivJ8ZhqGVK1fqwQcf1Lhx4zR48GA9++yzOnz4sF599VWzTwcAglpDg2GrcLNv+ViFs+yCLZkacGpra1VSUqKMjIx/fGFYmDIyMlRUVNTkfqdOndLll1+uxMREjRs3Trt37/Z+Vl5eLrfb7XPM6OhopaamNnnMmpoaeTwenxcA2M2ug1XqteANq8vwGyYT25upAefLL79UfX29Tw+MJMXFxcntdje6T79+/bR27Vr96U9/0u9//3s1NDRoxIgROnjwoCR592vNMfPz8xUdHe19JSYmXuipAUBQ6Tn/dd385DtWl+E3hBsE3HNw0tLSNHnyZCUnJ2vkyJF6+eWXFRsbq1//+tdtPmZubq6qqqq8rwMHDrRjxQAQ2Ow0JLXqtqGEG0gy+Tbx7t27Kzw8XBUVFT7bKyoq5HK5WnSMjh07aujQoSorK5Mk734VFRWKj4/3OWZycnKjx3A6nXI6nW04AwAIbnYKNx8vzlQXJ08/wTdM7cGJiIjQsGHDVFhY6N3W0NCgwsJCpaWltegY9fX12rVrlzfMJCUlyeVy+RzT4/GouLi4xccEADuwU7gpz88m3MCH6T8NOTk5mjJlioYPH66UlBStXLlS1dXVmjZtmiRp8uTJuuSSS5Sfny9JWrJkia699lr16dNHlZWVeuyxx/TFF1/ojjvukPTNHVazZ8/Www8/rL59+yopKUkLFy5UQkKCxo8fb/bpAEDAqz3boCsefNPqMvyGISk0xvSAM2HCBB07dkx5eXlyu91KTk5WQUGBd5Lw/v37FRb2j46kr776SjNmzJDb7VbXrl01bNgwvffeexo4cKC3zdy5c1VdXa2ZM2eqsrJS119/vQoKCs55ICAA2M3z2/Zr/su7rC7Dbwg3aIrDMAzD6iL8zePxKDo6WlVVVYqKirK6HABoF3YakhrR+1+0fsa1VpcBP2vN728GLAEgBNgp3Gy87wZdEXex1WUgwBFwACDI2SncfPbIGHUMD7gnnCAAEXAAIEgZhqGkXJ5MDDSGGAwAQehEdS3hBmgGPTgAEGT+838+1IbdFedvGCIIN2gLAg4ABBE7zbdZ+IOBmn59ktVlIEgRcAAgSNgp3OzMu0kxnSOsLgNBjIADAEHATuGmPD9bDofD6jIQ5JhkDAABrKHBsFW42bd8LOEG7YKAAwAB6pPDHvVawJ1SQFswRAUAAchOvTauqEi9vyDd6jIQYgg4ABBg7BRu/nhnmob37GZ1GQhBBBwACCB2CjelD2fJ2SHc6jIQogg4ABAg7BRuuFMKZmOSMQBY7Exdva3CDXdKwR8IOABgoZe3H1T/hQVWl+E33CkFf2GICgAsYqdem+nXJ2nhDwZaXQZshIADABawU7h5PzddruhIq8uAzRBwAMDP7BRuPl+WrbAw5tvA/wg4AOAnhmEoKZcnEwP+wCRjAPCDYydrCDeAH9GDAwAmy3lxp17efsjqMvyGcINAQMABABPZab7Nr28fpswrXVaXAUgi4ACAaewUbvYsyVKnCJZdQOAg4ACACewUblh2AYGIScYA0I7qGwxbhRuWXUCgIuAAQDv56GClei/gTikgEDBEBQDtoFfu62owrK7CPzIG9NDvplxjdRlAswg4AHCB7DQkVThnpHrHdrG6DOC8CDgAcAHsFG72LstWOMsuIEgQcACgjewUbphvg2Djl0nGq1evVs+ePRUZGanU1FRt27atyba//e1v9b3vfU9du3ZV165dlZGRcU77qVOnyuFw+LyysrLMPg0AkCRV15wl3AABzvSA88ILLygnJ0eLFi3S9u3bNWTIEGVmZuro0aONtt+6datuu+02bdmyRUVFRUpMTNTo0aN16JDvY86zsrJ05MgR7+sPf/iD2acCAHrxgwO6ctEGq8vwG8INgpXDMAxT5/2npqbqmmuu0ZNPPilJamhoUGJiou655x7Nnz//vPvX19era9euevLJJzV58mRJ3/TgVFZW6tVXX21TTR6PR9HR0aqqqlJUVFSbjgHAfuzUa7Nk3JWanNbT6jIAH635/W1qD05tba1KSkqUkZHxjy8MC1NGRoaKiopadIzTp0+rrq5O3bp189m+detW9ejRQ/369dNdd92l48ePN3mMmpoaeTwenxcAtIadws3fFo0m3CDomRpwvvzyS9XX1ysuLs5ne1xcnNxud4uOMW/ePCUkJPiEpKysLD377LMqLCzUihUr9Ne//lVjxoxRfX19o8fIz89XdHS095WYmNj2kwJgO3YKN+X52Yru1NHqMoALFtB3US1fvlzPP/+8tm7dqsjISO/2iRMnev990KBBGjx4sHr37q2tW7cqPT39nOPk5uYqJyfH+97j8RByAJyXYRhKyuXJxEAwMrUHp3v37goPD1dFRYXP9oqKCrlcrmb3ffzxx7V8+XJt3LhRgwcPbrZtr1691L17d5WVlTX6udPpVFRUlM8LAJpz8KvThBsgiJkacCIiIjRs2DAVFhZ6tzU0NKiwsFBpaWlN7vfoo49q6dKlKigo0PDhw8/7PQcPHtTx48cVHx/fLnUDsLd7n9+h61dssboMv7i0ayfCDUKS6UNUOTk5mjJlioYPH66UlBStXLlS1dXVmjZtmiRp8uTJuuSSS5Sfny9JWrFihfLy8rR+/Xr17NnTO1enS5cu6tKli06dOqXFixfrlltukcvl0t69ezV37lz16dNHmZmZ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zZNpv/tz8sUXX/ixYv+prq7WkCFDtHr16ha1Ly8v19ixY3XjjTdq586dmj17tu644w5t2LDB5Eqt0drr863S0lKfn58ePXqYVGErGfCrp59+2oiOjm5R2ylTphjjxo0ztZ5A09Lr09DQYLhcLuOxxx7zbqusrDScTqfxhz/8wcQK/e+TTz4xJBkffPCBd9ubb75pOBwO49ChQ03uN3LkSOPee+/1Q4X+lZKSYtx9993e9/X19UZCQoKRn5/faPsf/vCHxtixY322paamGv/5n/9pap1Wae31ac2fSaFEkvHKK68022bu3LnGlVde6bNtwoQJRmZmpomVBYaWXJ8tW7YYkoyvvvrKLzW1Fj04AW7r1q3q0aOH+vXrp7vuukvHjx+3uqSAUF5eLrfbrYyMDO+26OhopaamqqioyMLK2l9RUZFiYmI0fPhw77aMjAyFhYWpuLi42X2fe+45de/eXVdddZVyc3N1+vRps8s1VW1trUpKSnz+u4eFhSkjI6PJ/+5FRUU+7SUpMzMz5H5OpLZdH0k6deqULr/8ciUmJmrcuHHavXu3P8oNeHb62bkQycnJio+P10033aR3333X6nK8bLnYZrDIysrSv//7vyspKUl79+7VggULNGbMGBUVFSk8PNzq8iz17RhvXFycz/a4uLiAGf9tL263+5wu3w4dOqhbt27NnuuPfvQjXX755UpISNBHH32kefPmqbS0VC+//LLZJZvmyy+/VH19faP/3T/99NNG93G73bb4OZHadn369euntWvXavDgwaqqqtLjjz+uESNGaPfu3QGzKLFVmvrZ8Xg8+vrrr9WpUyeLKgsM8fHxWrNmjYYPH66amhr97ne/06hRo1RcXKyrr77a6vIIOBdi/vz5WrFiRbNt9uzZo/79+7fp+BMnTvT++6BBgzR48GD17t1bW7duVXp6epuO6U9mX59g19Lr01bfnaMzaNAgxcfHKz09XXv37lXv3r3bfFyElrS0NKWlpXnfjxgxQgMGDNCvf/1rLV261MLKEOj69eunfv36ed+PGDFCe/fu1S9+8Qv9z//8j4WVfYOAcwHmzJmjqVOnNtumV69e7fZ9vXr1Uvfu3VVWVhYUAcfM6+NyuSRJFRUVio+P926vqKhQcnJym47pby29Pi6X65wJomfPntWJEye816ElUlNTJUllZWVBG3C6d++u8PBwVVRU+GyvqKho8lq4XK5WtQ9mbbk+/6xjx44aOnSoysrKzCgxqDT1sxMVFWX73pumpKSk6J133rG6DEkEnAsSGxur2NhYv33fwYMHdfz4cZ9f6IHMzOuTlJQkl8ulwsJCb6DxeDwqLi5u9Z1qVmnp9UlLS1NlZaVKSko0bNgwSdLmzZvV0NDgDS0tsXPnTkkKmp+fxkRERGjYsGEqLCzU+PHjJUkNDQ0qLCzUrFmzGt0nLS1NhYWFmj17tnfbpk2bfHotQkVbrs8/q6+v165du5SdnW1ipcEhLS3tnEcKhOrPTnvZuXNn4PwZY/UsZ7v44osvjB07dhiLFy82unTpYuzYscPYsWOHcfLkSW+bfv36GS+//LJhGIZx8uRJ4/777zeKioqM8vJy46233jKuvvpqo2/fvsaZM2esOg3TtPb6GIZhLF++3IiJiTH+9Kc/GR999JExbtw4Iykpyfj666+tOAVTZWVlGUOHDjWKi4uNd955x+jbt69x2223eT8/ePCg0a9fP6O4uNgwDMMoKyszlixZYnz44YdGeXm58ac//cno1auXccMNN1h1Cu3m+eefN5xOp7Fu3Trjk08+MWbOnGnExMQYbrfbMAzDuP3224358+d727/77rtGhw4djMcff9zYs2ePsWjRIqNjx47Grl27rDoFU7X2+ixevNjYsGGDsXfvXqOkpMSYOHGiERkZaezevduqUzDNyZMnvX+2SDKeeOIJY8eOHcYXX3xhGIZhzJ8/37j99tu97T///HOjc+fOxgMPPGDs2bPHWL16tREeHm4UFBRYdQqmau31+cUvfmG8+uqrxmeffWbs2rXLuPfee42wsDDjrbfesuoUfBBw/GTKlCmGpHNeW7Zs8baRZDz99NOGYRjG6dOnjdGjRxuxsbFGx44djcsvv9yYMWOG9w+pUNPa62MY39wqvnDhQiMuLs5wOp1Genq6UVpa6v/i/eD48ePGbbfdZnTp0sWIiooypk2b5hP+ysvLfa7X/v37jRtuuMHo1q2b4XQ6jT59+hgPPPCAUVVVZdEZtK9f/vKXxmWXXWZEREQYKSkpxvvvv+/9bOTIkcaUKVN82r/44ovGFVdcYURERBhXXnml8frrr/u5Yv9qzfWZPXu2t21cXJyRnZ1tbN++3YKqzfftbc3//Pr2ekyZMsUYOXLkOfskJycbERERRq9evXz+DAo1rb0+K1asMHr37m1ERkYa3bp1M0aNGmVs3rzZmuIb4TAMw/BbdxEAAIAf8BwcAAAQcgg4AAAg5BBwAABAyCHgAACAkEPAAQAAIYeAAwAAQg4BBwAAhBwCDgAACDkEHAAAEHIIOAAAIOQQcAAAQMgh4AAAgJDz/wEn7eSeaeXnlQAAAABJRU5ErkJggg==",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "\n",
    "train_xx, train_yy, test_xx, test_yy = \\\n",
    "    make_data(func=np.sin, start=-np.pi/2, end=np.pi/2, number=100000, shuffle=True, train_ratio=0.9)\n",
    "print(train_xx.shape, train_yy.shape, test_xx.shape, test_yy.shape)\n",
    "\n",
    "visulization(train_xx, train_yy)\n",
    "visulization(test_xx, test_yy)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 177,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "EPOCH: 0 | Steps: 352 | train_loss=1.554603099822998, test_loss=1.523781180381775\n",
      "EPOCH: 10 | Steps: 3872 | train_loss=1.2150098085403442, test_loss=1.1906659603118896\n",
      "EPOCH: 20 | Steps: 7392 | train_loss=0.8802934885025024, test_loss=0.8659765720367432\n",
      "EPOCH: 30 | Steps: 10912 | train_loss=0.5536290407180786, test_loss=0.5582735538482666\n",
      "EPOCH: 40 | Steps: 14432 | train_loss=0.2894977331161499, test_loss=0.30090320110321045\n",
      "EPOCH: 50 | Steps: 17952 | train_loss=0.1816372573375702, test_loss=0.19250622391700745\n",
      "EPOCH: 60 | Steps: 21472 | train_loss=0.10728935897350311, test_loss=0.10867057740688324\n",
      "EPOCH: 70 | Steps: 24992 | train_loss=0.049924079328775406, test_loss=0.049795929342508316\n",
      "EPOCH: 80 | Steps: 28512 | train_loss=0.0024496326223015785, test_loss=0.0022625315468758345\n",
      "EPOCH: 90 | Steps: 32032 | train_loss=0.0023919714149087667, test_loss=0.002246082993224263\n",
      "EPOCH: 100 | Steps: 35552 | train_loss=0.0023923323024064302, test_loss=0.002246025949716568\n",
      "EPOCH: 110 | Steps: 39072 | train_loss=0.002392475726082921, test_loss=0.002245910931378603\n",
      "EPOCH: 120 | Steps: 42592 | train_loss=0.0023922231048345566, test_loss=0.0022459381725639105\n",
      "EPOCH: 130 | Steps: 46112 | train_loss=0.002391860820353031, test_loss=0.0022458466701209545\n",
      "EPOCH: 140 | Steps: 49632 | train_loss=0.0023922782856971025, test_loss=0.002246062969788909\n",
      "EPOCH: 150 | Steps: 53152 | train_loss=0.0023921155370771885, test_loss=0.0022459453903138638\n",
      "EPOCH: 160 | Steps: 56672 | train_loss=0.002392347902059555, test_loss=0.0022459952160716057\n",
      "EPOCH: 170 | Steps: 60192 | train_loss=0.00239131273701787, test_loss=0.0022456191945821047\n",
      "EPOCH: 180 | Steps: 63712 | train_loss=0.0023915476631373167, test_loss=0.0022457209415733814\n",
      "EPOCH: 190 | Steps: 67232 | train_loss=0.0023919036611914635, test_loss=0.002245916286483407\n",
      "a = 0.9910640716552734, b = -0.14712995290756226, c = 0.00011839385842904449\n"
     ]
    }
   ],
   "source": [
    "from tqdm import tqdm\n",
    "\n",
    "device = torch.device(\"cuda\" if torch.cuda.is_available() else \"cpu\")\n",
    "\n",
    "train_xx_data = torch.from_numpy(train_xx).float()\n",
    "train_yy_data = torch.from_numpy(train_yy).float()\n",
    "test_xx_data = torch.from_numpy(test_xx).float()\n",
    "test_yy_data = torch.from_numpy(test_yy).float()\n",
    "\n",
    "n_coffs = 2   # coffs (a, b) for (x, x^3) or (x^2, x^4)\n",
    "epoches = 200\n",
    "total_data = train_xx_data.shape[0]\n",
    "batch_size = 256\n",
    "learning_rate = 0.00005\n",
    "\n",
    "coffs = torch.ones((n_coffs + 1)).to(device).float()\n",
    "coffs =  nn.Parameter(coffs.requires_grad_(True)) # coffs (a, b, c)\n",
    "params = [{'params': [coffs], 'lr': learning_rate, \"name\": \"coffs\"}]\n",
    "optimizer = torch.optim.Adam(params=params, lr=0.0, eps=1e-15)\n",
    "\n",
    "glob_step = 0\n",
    "glob_steps = []\n",
    "losses = []\n",
    "for epoch in range(epoches):\n",
    "    for i in range(0, total_data, batch_size):\n",
    "        train_x = train_xx_data[i: i+batch_size].to(device)\n",
    "        train_y = train_yy_data[i: i+batch_size].to(device)\n",
    "        a =  coffs[0].repeat(train_x.shape[0])\n",
    "        b =  coffs[1].repeat(train_x.shape[0])\n",
    "        c =  coffs[2].repeat(train_x.shape[0])\n",
    "                \n",
    "        pred_y = a * train_x + b * train_x ** 3 + c \n",
    "        loss = torch.abs((pred_y - train_y)).mean()\n",
    "        optimizer.zero_grad()\n",
    "        loss.backward()\n",
    "        optimizer.step()\n",
    "        \n",
    "        glob_steps.append(glob_step)\n",
    "        glob_step += 1\n",
    "        losses.append(loss.item())\n",
    "        \n",
    "    if epoch % 10 == 0:\n",
    "        test_x = test_xx_data.to(device)\n",
    "        test_y = test_yy_data.to(device)\n",
    "        a =  coffs[0].repeat(test_xx_data.shape[0])\n",
    "        b =  coffs[1].repeat(test_xx_data.shape[0])\n",
    "        c =  coffs[2].repeat(test_xx_data.shape[0])\n",
    "        pred_test_y = pred_y = a * test_x + b * test_x ** 3 + c \n",
    "        \n",
    "        test_loss = torch.abs((pred_test_y - test_y)).mean()\n",
    "        print(f\"EPOCH: {epoch} | Steps: {glob_step} | train_loss={loss}, test_loss={test_loss}\")\n",
    "\n",
    "print(f\"a = {coffs[0]}, b = {coffs[1]}, c = {coffs[2]}\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 178,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Parameter containing:\n",
      "tensor([ 9.9106e-01, -1.4713e-01,  1.1839e-04], requires_grad=True)\n"
     ]
    },
    {
     "data": {
      "image/png": "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3LlztWrVKt1///1220+ZMkUJCQnavHmznnnmGUlSw4YNlZGRoe3bt+v111/XO++8o9dee02SNGLECD366KPq2rWr7fVGjBhRpa+ysjKlpKSoUaNG+u9//6tPPvlEX3/9dZXXX7Zsmfbs2aNly5Zp1qxZysjIsAWqDRs26MEHH9Tzzz+vnTt3KjMzU1dccYWj30IAdVXv+8kDQC1deeWVxkMPPWQYhmG0atXKeO211+yev+uuu4x77rnHbt0333xj+Pn5GSdPnrRtN3z48Gpf65VXXjF69+5tezxp0iQjISGhSp0k4/PPPzcMwzDefvtto1GjRkZpaant+QULFhh+fn5Gfn6+YRiGMWbMGKNVq1bGmTNnbDW33HKLMWLECMMwDOOzzz4zwsLCjOLi4mp7BOB6HAMEwO1899132rJliz788EPbOsMwZLValZOTo86dO0uS+vTpU2XbuXPn6o033tCePXtUWlqqM2fOKCwsrFavv2PHDiUkJOiiiy6yrbv88stltVq1c+dORUVFSZK6du0qf39/W01MTIy2bt0qSbr66qvVqlUrtWnTRoMHD9bgwYN14403KjQ0tFa9AHAOvgID4HZKS0v1xz/+UdnZ2bblu+++065du9S2bVtb3a8DiiStWbNGo0aN0tChQ/Xll19q8+bNeuqpp1RRUeGUPhs0aGD32GKxyGq1Svrlq7hNmzZp9uzZiomJ0cSJE5WQkKDCwkKn9AKgdtgDBMBUgYGBqqystFt3ySWXaPv27WrXrl2txlq9erVatWqlp556yrZu37591b7eb3Xu3FkZGRkqKyuzhaxvv/1Wfn5+6tixY437CQgIUHJyspKTkzVp0iRFRERo6dKl+v3vf1+LWQFwBvYAATBVfHy8Vq5cqYMHD+ro0aOSfjmTa/Xq1br//vuVnZ2tXbt26YsvvqhyEPJvtW/fXrm5uZozZ4727NmjN954Q59//nmV18vJyVF2draOHj2q8vLyKuOMGjVKwcHBGjNmjLZt26Zly5bpgQce0B133GH7+qs6X375pd544w1lZ2dr3759ev/992W1WmsVoAA4DwEIgKmef/557d27V23btlXTpk0lST169NCKFSv0448/asCAAerVq5cmTpyo2NjYC451/fXX65FHHtH999+vnj17avXq1bazw8666aabNHjwYA0cOFBNmzbV7Nmzq4wTGhqqRYsW6fjx47r00kt18803a9CgQXrzzTdrPK+IiAjNmzdPv/vd79S5c2fNmDFDs2fPVteuXWs8BgDn4UrQAADA57AHCAAA+BwCEAAA8DkEIAAA4HMIQAAAwOcQgAAAgM8hAAEAAJ9DAAIAAD6HAAQAAHwOAQgAAPgcAhAAAPA5BCAAAOBz/h9QsTkfzi74eAAAAABJRU5ErkJggg==",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "print(coffs)\n",
    "\n",
    "plt.plot(glob_steps, losses)\n",
    "plt.xlabel('iterations')\n",
    "plt.ylabel('loss')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 184,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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OLS4uJgDBw744lAZKSkpAGzZsqVWJzhNmzbF6XSSk5PjdzwnJ6fceCQlJVWpfG12OvE5VWRkJD169GDLli3BqGKtU97nJz4+vt633pSnT58+fPTRR2GtgxKcM9CsWTOaNWsWsvvt3r2bn376ye8/9JosmPFp3749SUlJrFy50pfQ5OXlkZmZWeWZauFS2fj07duX3Nxc1q5dS69evQBYtWoVtm37kpbKWL9+PUCt+fyUJyoqil69erFy5UqGDx8OgG3brFy5knHjxpV5Tt++fVm5ciX33HOP71haWppfq0VdcTrxOZXH42Hjxo0MGzYsiDWtPfr27VtqWYG6+vmpLuvXrw//z5pwj3KuL3bs2GHWrVtnJk2aZOLi4sy6devMunXrzOHDh31lOnXqZN566y1jjDGHDx829913n8nIyDDbtm0z77//vunZs6c555xzTEFBQbgeI2iqGh9jjHniiSdMQkKC+c9//mM2bNhgrrjiCtO+fXtz7NixcDxCUA0dOtT06NHDZGZmmo8++sicc8455ne/+53v/d27d5tOnTqZzMxMY4wxW7ZsMZMnTzaff/652bZtm/nPf/5jOnToYC699NJwPUK1WrRokXG5XGbBggXm66+/NmPGjDEJCQkmOzvbGGPMjTfeaCZMmOAr//HHH5uIiAgzffp0k5WVZR555BETGRlpNm7cGK5HCKqqxmfSpElmxYoVZuvWrWbt2rVm5MiRJjo62nz11VfheoSgOnz4sO9nDGBmzJhh1q1bZ3bs2GGMMWbChAnmxhtv9JX//vvvTWxsrLn//vtNVlaWmT17tnE6nWb58uXheoSgqmp8nn32WbNkyRLz3XffmY0bN5q7777bOBwO8/7774frEYwxxijBCZGbb77ZAKW+Vq9e7SsDmBdffNEYY0x+fr4ZPHiwadasmYmMjDRt27Y1o0eP9v2AqmuqGh9jvFPFH3roIZOYmGhcLpcZMGCA2bx5c+grHwI//fST+d3vfmfi4uJMfHy8GTVqlF/yt23bNr947dy501x66aWmSZMmxuVymY4dO5r777/fHDp0KExPUP2ee+4506ZNGxMVFWX69OljPv30U997l112mbn55pv9yr/22mvmZz/7mYmKijLnn3++Wbp0aYhrHFpVic8999zjK5uYmGiGDRtmvvjiizDUOjRKpjWf+lUSk5tvvtlcdtllpc7p3r27iYqKMh06dPD7WVTXVDU+Tz75pDn77LNNdHS0adKkienfv79ZtWpVeCp/EssYY0LWXCQiIiISAloHR0REROocJTgiIiJS5yjBERERkTpHCY6IiIjUOUpwREREpM5RgiMiIiJ1jhIcERERqXOU4IiIiEidowRHRERE6hwlOCIiIlLnKMERERGROkcJjoiIiNQ5/x89ly2iHXS2TQAAAABJRU5ErkJggg==",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 绘制图1\n",
    "input = test_x.cpu().numpy()[::100]\n",
    "GT = test_y[::100]\n",
    "pred = pred_test_y[::100]\n",
    "\n",
    "plt.figure()\n",
    "plt.scatter(input, GT.cpu().numpy(), marker='*', label='GT')\n",
    "plt.scatter(input, pred.detach().cpu().numpy(), marker='^', label='Pred')\n",
    "plt.legend()\n",
    "plt.grid(True)\n",
    " \n",
    " "
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "base-torch",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.8.13"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
